// pages/select-checkbox/select-checkbox.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    label: String, // 输入框标签
    place: String, // 输入框提示
    list: Array, // 选择器 选项
    checkSelected: { // 选择器 选项数组中 对象的value的默认key
      type: String,
      value: ''
    },
    popup_title: { // 选择器 选项数组中 对象的value的默认key
      type: String,
      value: '选择车辆（单选）'
    },
    value_key: { // 选择器 选项数组中 对象的value的默认key
      type: String,
      value: ''
    },
    readonly: { // 选择器 选项数组中 对象的value的默认key
      type: Boolean,
      value: true
    },
    required: {
      type: Boolean,
      value: true
    },
    title_width: {
      type: String,
      value: "200rpx"
    }


  },
  // 监听传入的变量,当传入的值发生变化时,触发方法
  observers: {
    'list': function (val) {
      // val=> 就是父组件传入组件中的 tabsList 数据
      let l = []
      if (val.length == 1) {
        if (typeof (val[0]) == 'object') {
          l.push(val[0][this.data.value_key])
          this.setData({
            list2: l,
            checkSelected: l[0]
          })
          this.triggerEvent('changeSync', {  // 传递到组件外事件 ， 返回当前选中项 对象
            value: l[0],

          })
          this.triggerEvent('selectShow', {  // 传递到组件外事件 ， 返回当前选中项 对象
            value: true
          })

        } else {
          this.setData({
            checkSelected: val[0]
          })
          this.triggerEvent('changeSync', {  // 传递到组件外事件 ， 返回当前选中项 对象
            value: val[0],

          })
          this.triggerEvent('selectShow', {  // 传递到组件外事件 ， 返回当前选中项 对象
            value: true
          })
        }

      }
    }
  },
  /**
   * 页面的初始数据
   */
  data: {
    icon: 'arrow',  // 下拉箭头
    show: false,
    result: "",
    checkSelected: "",
    submit_disabled: true,
    list2: []

  },
  // attached() {
  //   let arr = this.data.list
  //   if (arr.length == 1) {
  //     this.setData({
  //       result: arr[0],
  //       checkSelected: arr[0]
  //     })
  //   }

  // },
  /**
  * 组件的方法列表
  */
  methods: {
    // 取消
    cancel() {
      this.setData({ show: false })
      this.triggerEvent('selectShow', {  // 传递到组件外事件 ， 返回当前选中项 对象
        value: true
      })
      this.triggerEvent('sync', {  // 传递到组件外事件 ， 返回当前选中项 对象
        value: this.data.checkSelected
      })
    },
    // 确定
    confirm() {

      this.setData({ show: false })
      this.triggerEvent('sync', {  // 传递到组件外事件 ， 返回当前选中项 对象
        value: this.data.checkSelected
      })
      this.triggerEvent('selectShow', {  // 传递到组件外事件 ， 返回当前选中项 对象
        value: true
      })
    },
    showPopup() {
      let arr = this.data.list
      let l = []
      if (typeof (arr[0]) == 'object') {
        for (let i = 0; i < arr.length; i++) {
          l.push(arr[i][this.data.value_key])
        }
        this.setData({
          list2: l,
        })
      } else {
        this.setData({
          list2: arr,
        })
      }
      this.setData({ show: true })
      this.triggerEvent('selectShow', {  // 传递到组件外事件 ， 返回当前选中项 对象
        value: false
      })

      this.checkSubmit()
    },

    updateData(e) {
      this.setData({
        checkSelected: e

      })
    },
    onChange(e) {
      let val = e.detail
      console.log(val);
      this.setData({
        checkSelected: val
      })
      this.checkSubmit()
    },

    onCellChange(e) {
      let val = e.currentTarget.dataset.row
      console.log(val);
      this.setData({
        checkSelected: val
      })
      this.checkSubmit()
    },


    checkSubmit() {
      if (this.data.checkSelected != "") {
        this.setData({
          submit_disabled: false
        })
      } else {
        this.setData({
          submit_disabled: true
        })
      }
    }

  }
})
